package com.indra.pe.bbva.bp.in.reporte;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.stefanini.pe.bbva.bp.in.bo.datasource.DetallePorContratos;
import com.stefanini.pe.bbva.bp.in.to.PosicionContrato;
import com.stefanini.pe.bbva.bp.in.to.PosicionDetalle;
import com.stefanini.pe.bbva.bp.in.utils.Util;

public class FormateadorDataReporte {
	
	public static List<PosicionContrato> formatearDataDetallePorContratosTOPosicionContrato(List<DetallePorContratos> listaDetallePorContrato){
		List<PosicionContrato> listaPosicionContrato = new ArrayList<PosicionContrato>();
		
		for (DetallePorContratos detallePorContratos : listaDetallePorContrato) {
			List<PosicionContrato> listaDetalle = detallePorContratos.getListaDetalle();
			if(listaDetalle!=null){
				for (PosicionContrato posicionContrato : listaDetalle) {
					listaPosicionContrato.add(posicionContrato);
				}
			}
			
			List<PosicionContrato> listaTotal = detallePorContratos.getTotal();
			if(listaTotal!=null){
				for (PosicionContrato posicionContrato : listaTotal) {
					posicionContrato.setShowIsDataFooter(true);
					listaPosicionContrato.add(posicionContrato);
				}
			}
		}
		return listaPosicionContrato;
	}

	public static List<PosicionDetalle> formatearDataDetallePorContratosTOPosicionDetalle(List<DetallePorContratos> listaDetallePorContrato){
		List<PosicionDetalle> listaPosicionContrato = new ArrayList<PosicionDetalle>();
		
		for (DetallePorContratos detallePorContratos : listaDetallePorContrato) {
			List<PosicionDetalle> listaDetalle = detallePorContratos.getListaDetalle();
			if(listaDetalle!=null){
				for (PosicionDetalle posicionDetalle : listaDetalle) {
					listaPosicionContrato.add(posicionDetalle);
				}
			}
			
			List<PosicionDetalle> listaTotal = detallePorContratos.getTotal();
			if(listaTotal!=null){
				for (PosicionDetalle posicionDetalle : listaTotal) {
					posicionDetalle.setShowIsDataFooter(true);
					listaPosicionContrato.add(posicionDetalle);
				}
			}
		}
		return listaPosicionContrato;
	}

	public static List<DatosGeneralesFormulario> formatearDataDatosGenerales(List<Map<String,Object>> lista){
		List<DatosGeneralesFormulario> listaDatosGeneralesFormulario = new ArrayList<DatosGeneralesFormulario>();
		for (Map<String, Object> map : lista) {
			listaDatosGeneralesFormulario.add(new DatosGeneralesFormulario(Util.getStringF((String)map.get("descripcion")), 
					Util.getStringF((String)map.get("saldoactual")),
					Util.getStringF((String) map.get("saldoretenido")), 
					Util.getStringF((String)map.get("saldodisponible")), 
					Util.getStringF((String)map.get("utilidadperdida")), 
					Util.getStringF((String)map.get("pesoFormat") + "%")));
		}
		return listaDatosGeneralesFormulario;
	}
	
	public static List<DatosSituacionActualFormulario> formatearDataReporteSituacionActual1(List<Map<String,Object>> lista){
		List<DatosSituacionActualFormulario> listaDatosFormulario = new ArrayList<DatosSituacionActualFormulario>();
		for (Map<String, Object> map : lista) {
			listaDatosFormulario.add(new DatosSituacionActualFormulario(Util.getStringF((String)map.get("descripcioncatactivo")),
					Util.getStringF((String) map.get("montodisponibledolarizado")), 
					Util.getStringF((String)map.get("pesoactual"))));
		}
		return listaDatosFormulario;
	} 
	
	
	public static List<DatosSituacionActualFormulario> formatearDataReporteSituacionActual2(List<Map<String,Object>> lista){
		List<DatosSituacionActualFormulario> listaDatosFormulario = new ArrayList<DatosSituacionActualFormulario>();
		for (Map<String, Object> map : lista) {
			listaDatosFormulario.add(new DatosSituacionActualFormulario(Util.getStringF((String)map.get("destipoproducto")),
					Util.getStringF((String) map.get("monto_disponibleusd")), 
					Util.getStringF((String)map.get("peso_disponibleusd")),
					Util.getStringF((String) map.get("monto_disponiblepen")),
					Util.getStringF((String) map.get("peso_disponiblepen")),
					Util.getStringF((String) map.get("monto_disponibleeur")),
					Util.getStringF((String) map.get("peso_disponibleeur"))
					));
		}
		return listaDatosFormulario;
	}
	
	public static List<DatosSituacionActualFormulario> formatearDataReporteSutuacionActual3(List<Map<String,Object>> lista){
		List<DatosSituacionActualFormulario> listaDatosFormulario = new ArrayList<DatosSituacionActualFormulario>();
		for (Map<String, Object> map : lista) {
			listaDatosFormulario.add(new DatosSituacionActualFormulario(Util.getStringF((String)map.get("destipoproducto")),
					Util.getStringF((String) map.get("monto_disponibletotal")), 
					Util.getStringF((String)map.get("utilidadtotal")),
					Util.getStringF((String) map.get("peso_disponibletotal"))));
		}
		return listaDatosFormulario;
	}
	
	public static List<DatosSituacionActualFormulario> formatearDataReporteSutuacionActual4(List<Map<String,Object>> lista){
		List<DatosSituacionActualFormulario> listaDatosFormulario = new ArrayList<DatosSituacionActualFormulario>();
		for (Map<String, Object> map : lista) {
			DatosSituacionActualFormulario datosSituacionActualFormulario = new DatosSituacionActualFormulario();
			datosSituacionActualFormulario.setDescCategoriaActivos(Util.getStringF((String)map.get("descripcioncatactivo")));
			datosSituacionActualFormulario.setPesoActual(Util.getStringF((String)map.get("pesoactual")));
			datosSituacionActualFormulario.setPesoIdeal(Util.getStringF((String)map.get("pesoideal")));
			listaDatosFormulario.add(datosSituacionActualFormulario);
		}
		return listaDatosFormulario;
	}
}
